# -*- coding: utf-8 -*-
#!/usr/bin/env python3

from socketserver import BaseRequestHandler, ThreadingTCPServer
'''
socketserver编程步骤：
1.创建一个socketserver类继承socketserver模块下的BaseRequestHandler类
2.重写父类方法handle，实现服务端业务逻辑
3.实例化server对象，传入本机ip，以及监听的端口号，还有新建的继承socketserver模块下的BaseRequestHandler类
4.激活服务端，无限循环处理请求
conn=与客户端的连接
addr=客户端地址
data=接收的数据
sends=服务端发送的数据
'''
class MySockServer(BaseRequestHandler):
    def handle(self):
        while True:
            conn=self.request
            addr=self.client_address
            data=str(conn.recv(1024),encoding='utf8')
            print(data)
            if data=='q':#客户端输入 q 断开连接
                break
            sends=bytes(input('服务端回复：'),encoding='utf8')
            conn.sendall(sends)
        conn.close()
#main函数：
if __name__ == '__main__':
    print('开始运行...')
    server= ThreadingTCPServer(('127.0.0.1', 8888), MySockServer)
    server.serve_forever()
